trait Cov[+A]
trait Inv[-A]

object varianceExploit {
  type l[-a] = Cov[a]
  type x = {type l[-a] = Cov[a]}
  def foo[M[_]] = ()
  foo[({type l[+a] = Inv[a]})#l]
}
